package com.hw.one.dam2.util;

import java.io.InputStream;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;

import com.hw.one.dam2.entity.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * 导出Excel的工具类
 * 
 * @author admin
 *
 */
public class ExcelUtil {

	//保留两位小数
	static DecimalFormat decimalFormat = new DecimalFormat("#0.00");


	/**
	 * 导出空气质量日报Excel
	 * @param dayAQIList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillDayReportData2ExcelWithTemplate(List<AQIEntity> dayAQIList,String templateFileName,String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第三行开始
		int rowIndex=2;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=dayAQIList && dayAQIList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取日报数据
			for(AQIEntity dayAQPO: dayAQIList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 设置列值
				cell.setCellValue(sortNum++);
				
				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getSiteName());
				
				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getMonitorTime());
				
				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getPm10());
				
				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getPm25());
				
				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getNo2());
				
				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getSo2());
				
				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getCo());
				
				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getO3());
				
				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getCompositeValue());
				
				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getAqi());
				
				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getPollutant());
				
				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 设置值
				cell.setCellValue(dayAQPO.getAqiLevelType());
				
			}
		}
		return wb;
	}

	/**
	 * 导出空气质量周报Excel
	 * @author 李亚坤
	 * @createtime 2017年3月28日15:13:50
	 * @param weekList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillWeekReportData2ExcelWithTemplate(List<IAQIEntity> weekList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);

		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=weekList && weekList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取日报数据
			for(IAQIEntity weekIAQIPO: weekList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 站点名称
				cell.setCellValue(weekIAQIPO.getSiteName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数
				cell.setCellValue(weekIAQIPO.getCompositeValue());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// AQI
				cell.setCellValue(weekIAQIPO.getAqi());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10浓度
				cell.setCellValue(weekIAQIPO.getPm10());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10指数
				cell.setCellValue(weekIAQIPO.getPm10IAQI());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5浓度
				cell.setCellValue(weekIAQIPO.getPm25());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5指数
				cell.setCellValue(weekIAQIPO.getPm25IAQI());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2浓度
				cell.setCellValue(weekIAQIPO.getSo2());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2指数
				cell.setCellValue(weekIAQIPO.getSo2IAQI());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2浓度
				cell.setCellValue(weekIAQIPO.getNo2());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2指数
				cell.setCellValue(weekIAQIPO.getNo2IAQI());

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO浓度
				cell.setCellValue(weekIAQIPO.getCo());

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO指数
				cell.setCellValue(weekIAQIPO.getCoIAQI());

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3浓度
				cell.setCellValue(weekIAQIPO.getO3());

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3指数
				cell.setCellValue(weekIAQIPO.getO3IAQI());

			}
		}
		return wb;
	}


	/**
	 * 导出空气质量同环比分析Excel
	 * @author 李亚坤
	 * @createtime 2017年3月28日15:14:30
	 * @param contrastRatioEntityList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillAirQualityContrastRatioExcelWithTemplate(List<ContrastRatioEntity> contrastRatioEntityList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=contrastRatioEntityList && contrastRatioEntityList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(ContrastRatioEntity contrastRatioEntity: contrastRatioEntityList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 站点名称
				cell.setCellValue(contrastRatioEntity.getSiteName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数 指数
				cell.setCellValue(contrastRatioEntity.getCompositeValue());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数 同比
				cell.setCellValue(null == contrastRatioEntity.getCompositeTBRatio() ? "" : contrastRatioEntity.getCompositeTBRatio().toString());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数 环比
				cell.setCellValue(null == contrastRatioEntity.getCompositeHBRatio() ? "" : contrastRatioEntity.getCompositeHBRatio().toString());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10 浓度
				cell.setCellValue(contrastRatioEntity.getPm10());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10 同比
				cell.setCellValue(null == contrastRatioEntity.getPm10TBRatio() ? "" : contrastRatioEntity.getPm10TBRatio().toString());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10 环比
				cell.setCellValue(null == contrastRatioEntity.getPm10HBRatio() ? "" : contrastRatioEntity.getPm10HBRatio().toString());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5 浓度
				cell.setCellValue(contrastRatioEntity.getPm25());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5 同比
				cell.setCellValue(null == contrastRatioEntity.getPm25TBRatio() ? "" : contrastRatioEntity.getPm25TBRatio().toString());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5 环比
				cell.setCellValue(null == contrastRatioEntity.getPm25HBRatio() ? "" : contrastRatioEntity.getPm25HBRatio().toString());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2 浓度
				cell.setCellValue(contrastRatioEntity.getSo2());

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2 同比
				cell.setCellValue(null == contrastRatioEntity.getSo2TBRatio() ? "" : contrastRatioEntity.getSo2TBRatio().toString());

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2 环比
				cell.setCellValue(null == contrastRatioEntity.getSo2HBRatio() ? "" : contrastRatioEntity.getSo2HBRatio().toString());

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2 浓度
				cell.setCellValue(contrastRatioEntity.getNo2());

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2 同比
				cell.setCellValue(null == contrastRatioEntity.getNo2TBRatio() ? "" : contrastRatioEntity.getNo2TBRatio().toString());

				cell = row.createCell(16);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2 环比
				cell.setCellValue(null == contrastRatioEntity.getNo2HBRatio() ? "" : contrastRatioEntity.getNo2HBRatio().toString());

				cell = row.createCell(17);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO-95 浓度
				cell.setCellValue(contrastRatioEntity.getCo());

				cell = row.createCell(18);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO-95 同比
				cell.setCellValue(null == contrastRatioEntity.getCoTBRatio() ? "" : contrastRatioEntity.getCoTBRatio().toString());

				cell = row.createCell(19);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO-95 环比
				cell.setCellValue(null == contrastRatioEntity.getCoHBRatio() ? "" : contrastRatioEntity.getCoHBRatio().toString());

				cell = row.createCell(20);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3-8h-90 浓度
				cell.setCellValue(contrastRatioEntity.getO3());

				cell = row.createCell(21);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3-8h-90 同比
				cell.setCellValue(null == contrastRatioEntity.getO3TBRatio() ? "" : contrastRatioEntity.getO3TBRatio().toString());

				cell = row.createCell(22);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3-8h-90 环比
				cell.setCellValue(null == contrastRatioEntity.getO3HBRatio() ? "" : contrastRatioEntity.getO3HBRatio().toString());

			}
		}
		return wb;
	}


	/**
	 * 导出城市排名Excel
	 * @param IAQIList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillAreaComprehensiveIndexDataExcelWithTemplate(List<IAQIEntity> IAQIList,String templateFileName,String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);

		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=IAQIList && IAQIList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取日报数据
			for(IAQIEntity iaqiEntity: IAQIList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(iaqiEntity.getRegionName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数
				cell.setCellValue(iaqiEntity.getCompositeValue());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// AQI
				cell.setCellValue(iaqiEntity.getAqi());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10浓度
				cell.setCellValue(iaqiEntity.getPm10());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10指数
				cell.setCellValue(iaqiEntity.getPm10IAQI());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5浓度
				cell.setCellValue(iaqiEntity.getPm25());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5指数
				cell.setCellValue(iaqiEntity.getPm25IAQI());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2浓度
				cell.setCellValue(iaqiEntity.getSo2());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2指数
				cell.setCellValue(iaqiEntity.getSo2IAQI());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2浓度
				cell.setCellValue(iaqiEntity.getNo2());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2指数
				cell.setCellValue(iaqiEntity.getNo2IAQI());

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO浓度
				cell.setCellValue(iaqiEntity.getCo());

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO指数
				cell.setCellValue(iaqiEntity.getCoIAQI());

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3浓度
				cell.setCellValue(iaqiEntity.getO3());

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3指数
				cell.setCellValue(iaqiEntity.getO3IAQI());

			}
		}
		return wb;
	}


	/**
	 * 导出空气质量Excel
	 * @param airAQIList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillAirQualityDataExcelWithTemplate(List<AQIEntity> airAQIList,String templateFileName,String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第三行开始
		int rowIndex=2;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=airAQIList && airAQIList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取日报数据
			for(AQIEntity airAQPO: airAQIList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 设置列值
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 站点名称
				cell.setCellValue(airAQPO.getSiteName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(airAQPO.getMonitorTime());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数
				cell.setCellValue(airAQPO.getCompositeValue());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// AQI
				cell.setCellValue(airAQPO.getAqi());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10
				cell.setCellValue(airAQPO.getPm10());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5
				cell.setCellValue(airAQPO.getPm25());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2
				cell.setCellValue(airAQPO.getSo2());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2
				cell.setCellValue(airAQPO.getNo2());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO
				cell.setCellValue(airAQPO.getCo());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3
				cell.setCellValue(airAQPO.getO3());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 等级
				cell.setCellValue(airAQPO.getAqiLevelType());

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 首要污染物
				cell.setCellValue(airAQPO.getPollutant());
			}
		}
		return wb;
	}



	/**
	 * 导出污染源数据Excel
	 * @param piEntityList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillIndustryPollutionDataExcelWithTemplate(List<PollutionIndustryEntity> piEntityList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=piEntityList && piEntityList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(PollutionIndustryEntity piEntity: piEntityList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市
				cell.setCellValue(piEntity.getCityName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 企业名称
				cell.setCellValue(piEntity.getCompanyName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(piEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 烟尘 浓度
				cell.setCellValue(piEntity.getAvgStrength001());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 烟尘 排放量
				cell.setCellValue(piEntity.getPFL001());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2 浓度
				cell.setCellValue(piEntity.getAvgStrength002());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2 排放量
				cell.setCellValue(piEntity.getPFL002());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NOx 浓度
				cell.setCellValue(piEntity.getAvgStrength003());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NOx 排放量
				cell.setCellValue(piEntity.getPFL003());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 烟气
				cell.setCellValue(piEntity.getCouFlow());

			}
		}
		return wb;
	}
	/**
	 * 导出污染源扬尘数据Excel
	 * @param rdEntityList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillRaiseDustDataExcelWithTemplate(List<RaiseDustEntity> rdEntityList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第三行开始
		int rowIndex=2;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=rdEntityList && rdEntityList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(RaiseDustEntity rdEntity: rdEntityList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(rdEntity.getRegionName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 站点名称
				cell.setCellValue(rdEntity.getSiteName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(rdEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10(μg/m3)
				cell.setCellValue(rdEntity.getPM10());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5(μg/m3)
				cell.setCellValue(rdEntity.getPM25());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 温度(C)
				cell.setCellValue(rdEntity.getTemperature());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 湿度(%rh)
				cell.setCellValue(rdEntity.getHumidity());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 风力
				cell.setCellValue(rdEntity.getWindSpeed());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 风向
				cell.setCellValue(rdEntity.getWindDirection());

			}
		}
		return wb;
	}


	/**
	 * 导出污染源-工业废水数据Excel
	 * @param waterDataList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillWaterPollutionDataExcelWithTemplate(List<PollutionIndustryEntity> waterDataList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=waterDataList && waterDataList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(PollutionIndustryEntity piEntity: waterDataList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(piEntity.getCityName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 企业名称
				cell.setCellValue(piEntity.getCompanyName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(piEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// COD浓度
				cell.setCellValue(piEntity.getAvgStrength001());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// COD排放量
				cell.setCellValue(piEntity.getPFL001());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 氨氮浓度
				cell.setCellValue(piEntity.getAvgStrength002());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 氨氮排放量
				cell.setCellValue(piEntity.getPFL002());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 总氮浓度
				cell.setCellValue(piEntity.getAvgStrength003());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 总氮排放量
				cell.setCellValue(piEntity.getPFL003());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 累计排放量(吨)
				cell.setCellValue(piEntity.getCouFlow());

			}
		}
		return wb;
	}


	/**
	 * 导出水质断面数据Excel
	 * @param waterSurfaceList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillWaterSurfaceDataExcelWithTemplate(List<WaterSurfaceEntity> waterSurfaceList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第三行开始
		int rowIndex=2;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=waterSurfaceList && waterSurfaceList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(WaterSurfaceEntity wsEntity: waterSurfaceList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(wsEntity.getCityName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 企业名称
				cell.setCellValue(wsEntity.getCompanyName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(wsEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// COD
				cell.setCellValue(wsEntity.getAvgStrength001());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 氨氮
				cell.setCellValue(wsEntity.getAvgStrength002());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 总磷
				cell.setCellValue(wsEntity.getAvgStrength003());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 总氮
				cell.setCellValue(wsEntity.getAvgStrength004());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// TOD
				cell.setCellValue(wsEntity.getAvgStrength005());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 溶解氧
				cell.setCellValue(wsEntity.getAvgStrength013());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 浊度
				cell.setCellValue(wsEntity.getAvgStrength014());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 电导率
				cell.setCellValue(wsEntity.getAvgStrength015());

			}
		}
		return wb;
	}


	/**
	 * 导出油烟数据Excel
	 * @param rdEntityList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillLampBlackDataExcelWithTemplate(List<LampBlackEntity> rdEntityList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=rdEntityList && rdEntityList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(LampBlackEntity rdEntity: rdEntityList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(rdEntity.getCityName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 企业名称
				cell.setCellValue(rdEntity.getCompanyName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(rdEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 油烟浓度
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getConcentration() == null ? "-" : rdEntity.getBefore().getConcentration());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 风机状态
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getBlowerState() == null ? "-" : rdEntity.getBefore().getBlowerState());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 净化器状态
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getPurifierState() == null ? "-" : rdEntity.getBefore().getPurifierState());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 清洁度
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getCleanLiness() == null ? "-" : rdEntity.getBefore().getCleanLiness());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 探头状态
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getSystemState() == null ? "-":rdEntity.getBefore().getSystemState());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 浓度阀值
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getConLimit() == null ? "-" : rdEntity.getBefore().getConLimit());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 温度
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getTemp() == null  ? "-" : rdEntity.getBefore().getTemp());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 湿度
				cell.setCellValue(rdEntity.getBefore() == null || rdEntity.getBefore().getHum() == null ? "-":rdEntity.getBefore().getHum());

				// 处理后的数据
				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 油烟浓度
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getConcentration() == null ? "-" : rdEntity.getAfter().getConcentration());

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 风机状态
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getBlowerState() == null ? "-" : rdEntity.getAfter().getBlowerState());

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 净化器状态
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getPurifierState() == null ? "-" : rdEntity.getAfter().getPurifierState());

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 清洁度
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getCleanLiness() == null ? "-" : rdEntity.getAfter().getCleanLiness());

				cell = row.createCell(16);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 探头状态
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getSystemState() == null ? "-":rdEntity.getAfter().getSystemState());

				cell = row.createCell(17);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 浓度阀值
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getConLimit() == null ? "-" : rdEntity.getAfter().getConLimit());

				cell = row.createCell(18);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 温度
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getTemp() == null  ? "-" : rdEntity.getAfter().getTemp());

				cell = row.createCell(19);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 处理前 湿度
				cell.setCellValue(rdEntity.getAfter() == null || rdEntity.getAfter().getHum() == null ? "-":rdEntity.getAfter().getHum());

			}
		}
		return wb;
	}


/**
	 * 导出喷漆房数据Excel
	 * @param rdEntityList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillSprayBoothDataExcelWithTemplate(List<RaiseDustEntity> rdEntityList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);
		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第三行开始
		int rowIndex=2;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=rdEntityList && rdEntityList.size() != 0){
			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取数据
			for(RaiseDustEntity rdEntity: rdEntityList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 城市名称
				cell.setCellValue(rdEntity.getRegionName());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 站点名称
				cell.setCellValue(rdEntity.getSiteName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测时间
				cell.setCellValue(rdEntity.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10(μg/m3)
				cell.setCellValue(rdEntity.getPM10());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM2.5(μg/m3)
				cell.setCellValue(rdEntity.getPM25());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 温度(C)
				cell.setCellValue(rdEntity.getTemperature());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 湿度(%rh)
				cell.setCellValue(rdEntity.getHumidity());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 风力
				cell.setCellValue(rdEntity.getWindSpeed());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 风向
				cell.setCellValue(rdEntity.getWindDirection());

			}
		}
		return wb;
	}


	/**
	 * 导出空气质量数据Excel
	 * @author 毛超然
	 * @createtime 2017年6月22日15:13:50
	 * @param aqiList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillAirReportDataExcelWithTemplate(List<AIREntity> aqiList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);

		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=aqiList && aqiList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 排序字段
			int sortNum = 1;
			// 读取空气数据
			for(AIREntity AQIPO: aqiList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(sortNum++);

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 站点/区域编码
				cell.setCellValue(AQIPO.getCode());

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 站点/区域名称
				cell.setCellValue(AQIPO.getName());

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// monitorTime
				cell.setCellValue(AQIPO.getMonitorTime());

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 综合指数
				cell.setCellValue(AQIPO.getCompositeValue());

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// AQI
				cell.setCellValue(AQIPO.getAqi());

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 等级
				cell.setCellValue(AQIPO.getAqiLevelType());

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 首要污染物
				cell.setCellValue(AQIPO.getPollutant());

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10浓度分数
				cell.setCellValue(AQIPO.getPm10_concentration());

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10IAQI分数
				cell.setCellValue(AQIPO.getPm10_iaqi());

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10综合指数分数
				cell.setCellValue(AQIPO.getPm10_subIndex());

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM25浓度分数
				cell.setCellValue(AQIPO.getPm25_concentration());

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM25IAQI分数
				cell.setCellValue(AQIPO.getPm25_iaqi());

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM25综合指数分数
				cell.setCellValue(AQIPO.getPm25_subIndex());

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2浓度分数
				cell.setCellValue(AQIPO.getSo2_concentration());

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2IAQI分数
				cell.setCellValue(AQIPO.getSo2_iaqi());

				cell = row.createCell(16);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2综合指数分数
				cell.setCellValue(AQIPO.getSo2_subIndex());

				cell = row.createCell(17);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2浓度分数
				cell.setCellValue(AQIPO.getNo2_concentration());

				cell = row.createCell(18);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2IAQI分数
				cell.setCellValue(AQIPO.getNo2_iaqi());

				cell = row.createCell(19);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2综合指数分数
				cell.setCellValue(AQIPO.getNo2_subIndex());

				cell = row.createCell(20);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO浓度分数
				cell.setCellValue(AQIPO.getCo_concentration());

				cell = row.createCell(21);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// COIAQI分数
				cell.setCellValue(AQIPO.getCo_iaqi());

				cell = row.createCell(22);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO综合指数分数
				cell.setCellValue(AQIPO.getCo_subIndex());

				cell = row.createCell(23);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3浓度分数
				cell.setCellValue(AQIPO.getO3_concentration());

				cell = row.createCell(24);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3IAQI分数
				cell.setCellValue(AQIPO.getO3_iaqi());

				cell = row.createCell(25);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3综合指数分数
				cell.setCellValue(AQIPO.getO3_subIndex());

				cell = row.createCell(26);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3_8
				cell.setCellValue(AQIPO.getO3_8_concentration());

				cell = row.createCell(27);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10_24
				cell.setCellValue(AQIPO.getPm10_24_concentration());

				cell = row.createCell(28);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM25_24
				cell.setCellValue(AQIPO.getPm25_24_concentration());

			}
		}
		return wb;
	}

	/**
	 * 导出5分钟空气质量原始数据Excel
	 * @author 毛超然
	 * @createtime 2017年7月3日15:13:50
	 * @param mapList
	 * @param templateFileName
	 * @param title
	 * @return
	 * @throws Exception
	 */
	public static Workbook fillAirMonitorDataExcelWithTemplate(List<Map> mapList, String templateFileName, String title)throws Exception{
		// 以流的形式，读取模版
		InputStream inp=ExcelUtil.class.getResourceAsStream("/excelTemplates/"+templateFileName);
		// POIFSFileSystem fs=new POIFSFileSystem(inp);
		// 根据模版流，生成excel工作簿workbook
		Workbook wb= new XSSFWorkbook(inp);//new HSSFWorkbook(fs);

		// 获取工作簿的第一个Sheet页
		Sheet sheet=wb.getSheetAt(0);
		// 获取模版表头的列数，第一行是标题，第二行是表头
		// int cellNums=sheet.getRow(1).getLastCellNum();
		// 填充数据从第四行开始
		int rowIndex=3;
		// 标题行
		Row row = sheet.getRow(0);
		// 标题列
		Cell titleCell = row.getCell(0);
		// 设置标题
		titleCell.setCellValue(title);
		// 给Workbook填充数据
		if(null!=mapList && mapList.size() != 0){

			// 数据行
			row = sheet.getRow(rowIndex);
			CellStyle defaultCellStyle = row.getCell(0).getCellStyle();
			// 读取日报数据
			for(Map<String,String> map: mapList){
				// 创建行
				row=sheet.createRow(rowIndex++);
				Cell cell= row.createCell(0);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 排名
				cell.setCellValue(String.valueOf(map.get("index")));

				cell=row.createCell(1);
				// 设置列样式
				cell.setCellStyle(defaultCellStyle);
				// 设备编码
				cell.setCellValue(map.get("snCode"));

				cell = row.createCell(2);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 监测设备类型代码
				cell.setCellValue(map.get("monitorCode"));

				cell = row.createCell(3);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// monitorTime
				cell.setCellValue(map.get("monitorTime"));

				cell = row.createCell(4);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM25
				cell.setCellValue(map.get("pm25"));

				cell = row.createCell(5);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTPM25
				cell.setCellValue(map.get("ctpm25"));

				cell = row.createCell(6);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// PM10
				cell.setCellValue(map.get("pm10"));

				cell = row.createCell(7);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTPM10
				cell.setCellValue(map.get("ctpm10"));

				cell = row.createCell(8);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CO
				cell.setCellValue(map.get("co"));

				cell = row.createCell(9);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTCO
				cell.setCellValue(map.get("ctco"));

				cell = row.createCell(10);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// ADCO
				cell.setCellValue(map.get("adco"));

				cell = row.createCell(11);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// NO2
				cell.setCellValue(map.get("no2"));

				cell = row.createCell(12);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTNO2
				cell.setCellValue(map.get("ctno2"));

				cell = row.createCell(13);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// ADNO2
				cell.setCellValue(map.get("adno2"));

				cell = row.createCell(14);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// SO2
				cell.setCellValue(map.get("so2"));

				cell = row.createCell(15);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTSO2
				cell.setCellValue(map.get("ctso2"));

				cell = row.createCell(16);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// ADSO2
				cell.setCellValue(map.get("adso2"));

				cell = row.createCell(17);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// O3
				cell.setCellValue(map.get("o3"));

				cell = row.createCell(18);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// CTO3
				cell.setCellValue(map.get("cto3"));

				cell = row.createCell(19);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// ADO3
				cell.setCellValue(map.get("ado3"));

				cell = row.createCell(20);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// HUM
				cell.setCellValue(map.get("hum"));

				cell = row.createCell(21);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// TEMP
				cell.setCellValue(map.get("temp"));

				cell = row.createCell(22);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// WD
				cell.setCellValue(map.get("wd"));

				cell = row.createCell(23);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// WS
				cell.setCellValue(map.get("ws"));

				cell = row.createCell(24);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// T1D
				cell.setCellValue(map.get("t5m"));

				cell = row.createCell(25);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// T5M
				cell.setCellValue(map.get("t1h"));

				cell = row.createCell(26);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// T1H
				cell.setCellValue(map.get("t1d"));

				cell = row.createCell(27);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 来源
				cell.setCellValue(map.get("dataSource"));

				cell = row.createCell(28);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 状态
				cell.setCellValue(map.get("calculFlag"));

				cell = row.createCell(29);
				// 设置样式
				cell.setCellStyle(defaultCellStyle);
				// 创建时间
				cell.setCellValue(map.get("createTime"));

			}
		}
		return wb;
	}
}
